<template>
    <div id="count-box">
  
    </div>
  </template>
  
  <script setup>
  import * as echarts from 'echarts';
  import { onMounted,onBeforeUnmount } from 'vue';
  let myChart = null;
  onMounted(() => {
    // 基于准备好的dom，初始化echarts实例
    myChart = echarts.init(document.getElementById('count-box'));
    var option;
    // 绘制图表
    option = {
        // 标题
        title: {
            text: '数据统计'
        },
        tooltip: {
            // 折线图
            trigger: 'axis'
        },
        // 图例
        legend: {
            data: ['订单', '销售额', '注册人数', '管理人员']
        },
        grid: {
            left: '3%',
            right: '4%',
            bottom: '3%',
            containLabel: true
        },
        toolbox: {
            feature: {
                saveAsImage: {}
            }
        },
        // 横坐标轴设置
        xAxis: {
            // 类型是类目型
            type: 'category',
            // 刻度值显式位置是否在中间
            boundaryGap: false,
            // 数据
            data: ['第一周', '第二周', '第三周', '第四周', '第五周', '第六周', '第七周']
        },
        // 纵坐标设置
        yAxis: {
            type: 'value'
        },
        // 显式数据系列
        series: [
            {
                name: '订单',
                type: 'line',
                stack: 'Total',
                data: [120, 132, 101, 134, 90, 230, 210]
            },
            {
                name: '销售额',
                type: 'line',
                stack: 'Total',
                data: [220, 182, 191, 234, 290, 330, 310]
            },
            {
                name: '注册人数',
                type: 'line',
                stack: 'Total',
                data: [150, 232, 201, 154, 190, 330, 410]
            },
            {
                name: '管理人员',
                type: 'line',
                stack: 'Total',
                data: [320, 332, 301, 334, 390, 330, 320]
            },
        ]
    };
    // 使用刚指定的配置项和数据显示图表。
    option && myChart.setOption(option);
  })

//实现echarts自适应
const onResize = ()=>{
  myChart.resize();
}
//监听窗口大小变化 window都事件在其它组件也会被触发 所有要通过销毁周期销毁
window.addEventListener('resize', onResize)
//销毁周期 消除事件监听
//在销毁的一瞬间执行
onBeforeUnmount(()=>{
  window.removeEventListener('resize', onResize)
})
  
  </script>
  
  <style scoped>
  #count-box {
    width: 100%;
    height: 100%;
  }
  </style>